{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "'''\n",
    "【课程8.1】  文件对象声明及基本操作\n",
    "\n",
    "另一种数据格式：文件/文档\n",
    "\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C:/Users/Hjx/Desktop/text.txt\n",
      "C:\\Users\\Hjx\\Desktop\\text.txt\n",
      "C:\\Users\\Hjx\\Desktop\\text.txt\n"
     ]
    }
   ],
   "source": [
    "# 本地文件的界定：指向一个本地存储的文件，是一个链接或者一个映射\n",
    "\n",
    "path1 = 'C:/Users/Hjx/Desktop/text.txt'  # 单个反斜杠：/\n",
    "path2 = 'C:\\\\Users\\\\Hjx\\\\Desktop\\\\text.txt'  # 两个斜杠：\\\\（第一个\\是转义符）\n",
    "path3 = r'C:\\Users\\Hjx\\Desktop\\text.txt'  # r用于防止字符转义\n",
    "# 路径书写格式\n",
    "print(path1)\n",
    "print(path2)\n",
    "print(path3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class '_io.TextIOWrapper'>\n",
      "<_io.TextIOWrapper name='C:\\\\Users\\\\Hjx\\\\Desktop\\\\text.txt' mode='r' encoding='cp936'>\n",
      "The Zen of Python, by Tim Peters\n",
      "Beautiful is better than ugly.\n",
      "Explicit is better than implicit.\n",
      "Simple is better than complex.\n",
      "读取完毕\n",
      "\n",
      "读取为空\n",
      "The Zen of Python, by Tim Peters\n",
      "Beautiful is better than ugly.\n",
      "Explicit is better than implicit.\n",
      "Simple is better than complex.\n",
      "第二次读取\n"
     ]
    }
   ],
   "source": [
    "# 读取文件：open语句\n",
    "\n",
    "f = open(path2, 'r')\n",
    "print(type(f))\n",
    "print(f)\n",
    "print(f.read())\n",
    "print('读取完毕')\n",
    "# open('路径', '模式', enconding = '编码' )\n",
    "# 模式：r：读取文件，默认；w：写入；rw：读取+写入；a：追加\n",
    "# 简答的读取方法：.read() → 读取后，光标将会留在读取末尾\n",
    "\n",
    "print(f.read()) \n",
    "print('读取为空')\n",
    "# 运行第一次.read()之后，光标位于末尾，再次读取输出为空\n",
    "\n",
    "f.seek(0)\n",
    "print(f.read()) \n",
    "print('第二次读取')\n",
    "# 所以现在用 f.seek(0) 来移动光标\n",
    "\n",
    "f.close()\n",
    "# print(f.read())   # 关闭后无法读取\n",
    "# 关闭文件链接  f.close()，养成一个好习惯"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "'''\n",
    "【课程8.2】  系统模块下的路径操作\n",
    "\n",
    "os 模块：提供了非常丰富的方法用来处理文件和目录\n",
    "\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "nt\n",
      "C:\\Users\\Hjx\\数据分析师python_课件\\01基础语言入门：从零开始学习Python\n",
      "['.ipynb_checkpoints', 'CH02 变量及数据类型.ipynb', 'CH03   序列及通用操作.ipynb', 'CH04   字典映射.ipynb', 'CH05   条件及循环语句.ipynb', 'CH06   函数.ipynb', 'CH07   模块与包.ipynb', 'CH08 数据读写.ipynb', '答案代码_项目01  商铺数据加载及存储.ipynb', '答案代码_项目02  基于Python的算法函数创建.ipynb', '项目01  商铺数据加载及存储.ipynb', '项目02  基于Python的算法函数创建.ipynb']\n",
      "('C:\\\\Users\\\\Hjx\\\\Desktop', 'text.txt')\n",
      "False\n",
      "True\n"
     ]
    }
   ],
   "source": [
    "# os模块：系统模块 - 常用命令\n",
    "\n",
    "import os  # 导入模块\n",
    "\n",
    "print(os.name)  # 输出字符串指示正在使用的平台。如果是window 则用'nt'表示，对Linux/Unix用户，它是'posix'。\n",
    "\n",
    "print(os.getcwd())  # 函数得到当前工作目录，即当前Python脚本工作的目录路径。\n",
    "\n",
    "print(os.listdir())  # 返回指定目录下的所有文件和目录名。\n",
    "\n",
    "#os.chdir('C:\\\\Users\\\\Hjx\\\\Desktop\\\\' )  # 切换到目标路径\n",
    "#print(os.getcwd()) \n",
    "\n",
    "#os.remove('text2.txt')  # 删除一个文件\n",
    "\n",
    "print(os.path.split('C:\\\\Users\\\\Hjx\\\\Desktop\\\\text.txt'))  # 函数返回一个路径的目录名和文件名\n",
    "\n",
    "print(os.path.exists('C:\\\\Users\\\\Hjx\\\\Desktop\\\\heheh.txt'))\n",
    "print(os.path.exists('C:\\\\Users\\\\Hjx\\\\Desktop\\\\'))\n",
    "# 用来检验给出的路径是否真地存在，这里不存在改文件故False，但路径存在故True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Zen of Python, by Tim Peters\n",
      "Beautiful is better than ugly.\n",
      "Explicit is better than implicit.\n",
      "Simple is better than complex.\n"
     ]
    }
   ],
   "source": [
    "# 相对路径和绝对路径\n",
    "\n",
    "os.chdir('C:\\\\Users\\\\Hjx\\\\Desktop\\\\' )\n",
    "f2 = open('text.txt','r')\n",
    "print(f2.read())\n",
    "# 在申明了目录之后，就可以直接输出文件名了 → 相对路径"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "'''\n",
    "【课程8.3】  文件的读取与写入\n",
    "\n",
    "os 模块：提供了非常丰富的方法用来处理文件和目录\n",
    "\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Zen of Python, by Tim Peters\n",
      "Beautiful is better than ugly.\n",
      "Explicit is better than implicit.\n",
      "Simple is better than complex.\n"
     ]
    }
   ],
   "source": [
    "# 文件读取 - read\n",
    "\n",
    "f = open('C:\\\\Users\\\\Hjx\\\\Desktop\\\\text.txt', 'r')\n",
    "print(f.read())\n",
    "# 直接读取（这里光标默认会在最末尾）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Th\n"
     ]
    }
   ],
   "source": [
    "f.seek(0)\n",
    "print(f.read(2))\n",
    "# f.read(n):n代表读取多少个字符"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Zen of Python, by Tim Peters\n",
      "\n",
      "Beautiful is better than ugly.\n",
      "\n",
      "Expl\n"
     ]
    }
   ],
   "source": [
    "f.seek(0)\n",
    "print(f.readline())\n",
    "print(f.readline())\n",
    "print(f.readline(4))\n",
    "# 读取行到字符串，一次性读取一行\n",
    "# f.readline(n)：读取该行的前n个字符"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'str'> The Zen of Python, by Tim Peters\n",
      "\n",
      "<class 'str'> Beautiful is better than ugly.\n",
      "\n",
      "<class 'str'> Explicit is better than implicit.\n",
      "\n",
      "<class 'str'> Simple is better than complex.\n"
     ]
    }
   ],
   "source": [
    "f.seek(0)\n",
    "for line in f.readlines():\n",
    "    print(type(line),line)\n",
    "# 遍历一个文件：for语句+f.readlines()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "小作业\n",
    "\n",
    "利用百度POI小插件爬取一些poi数据，然后存成txt，再用python读取，编写成一个json形式（列表字典）：\n",
    "\n",
    "[{'name':'...', 'lng':..., 'lat':..., 'address':'...'},{...},...,]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'address': '中山东一路18', 'name': '外滩18号', 'lat': 31.244099, 'lng': 121.49618}, {'address': '衡山路10号甲欧登大夏2-3楼', 'name': 'Light酒吧', 'lat': 31.211903, 'lng': 121.453435}, {'address': '淮海中路98号', 'name': 'Linx酒吧', 'lat': 31.231151, 'lng': 121.485461}, {'address': '黄浦区复兴中路579号(近瑞金二路)', 'name': 'speak low', 'lat': 31.220875, 'lng': 121.472243}, {'address': '上海市静安区富民路83号(近延安中路)', 'name': 'Dr.Beer', 'lat': 31.226978, 'lng': 121.456957}, {'address': '上海黄浦区福州路318号浦汇大厦24楼', 'name': 'M1NT', 'lat': 31.240288, 'lng': 121.490882}, {'address': '上海徐汇区衡山路5号(近东平路)', 'name': 'zapata’s', 'lat': 31.214576, 'lng': 121.455773}, {'address': '上海市长宁区镇宁路525号新东纺大酒店1楼(万航渡路口)', 'name': 'TZ House 弹指之间音乐酒吧(镇宁店)', 'lat': 31.230571, 'lng': 121.441528}, {'address': '中山东二路22号115-116(新永安路口)', 'name': '外滩二十二号Bund22', 'lat': 31.236287, 'lng': 121.500329}, {'address': '上海市徐汇区东平路11号(近衡山路)', 'name': '萨莎花园', 'lat': 31.214673, 'lng': 121.456043}, {'address': '襄阳北路1号5楼', 'name': 'KARTEL', 'lat': 31.2272, 'lng': 121.460768}, {'address': '上海市黄浦区南京西路231号人民公园内', 'name': '芭芭露莎酒吧', 'lat': 31.237303, 'lng': 121.478407}, {'address': '上海市闵行区七莘路1839号明泉财富108广场5层', 'name': 'MTclub酒吧', 'lat': 31.141087, 'lng': 121.368172}, {'address': '淮海中路796号3楼', 'name': 'Kee Club（淮海中路店）', 'lat': 31.225011, 'lng': 121.469051}, {'address': '上海市黄浦区淮海中路527号锦江国际购物中心11楼(近雁荡路)', 'name': 'Windows SCOREBOARD', 'lat': 31.22657, 'lng': 121.47517}, {'address': '上海市徐汇区建国西路612号', 'name': '棉花酒吧(安亭路)', 'lat': 31.208024, 'lng': 121.454271}, {'address': '上海市静安区余姚路74号', 'name': '缪斯酒吧', 'lat': 31.242964, 'lng': 121.44924}, {'address': '兴国路277-1临', 'name': 'BAR NO.3', 'lat': 31.211133, 'lng': 121.444162}, {'address': '淞沪路151号中环大厦3楼', 'name': 'FeeLing 酒吧', 'lat': 31.309139, 'lng': 121.519992}, {'address': '上海黄浦区中山东一路18号外滩十八号7楼(近南京东路)', 'name': 'Bar Rouge', 'lat': 31.244132, 'lng': 121.496388}, {'address': '上海市静安区南阳路132号', 'name': 'BigBamboo(南阳路)', 'lat': 31.234559, 'lng': 121.457783}, {'address': '淮海中路1号柳林大厦5F602', 'name': '夜魅COCO顶级酒吧', 'lat': 31.23081, 'lng': 121.486669}, {'address': '上海市长宁区泰安路50-1号', 'name': 'heyday jazz bar', 'lat': 31.212145, 'lng': 121.443428}, {'address': '杨浦区淞沪路303号一楼(政民路', 'name': 'maru玛露音乐餐厅酒吧', 'lat': 31.310175, 'lng': 121.518905}, {'address': '川沙路4932号（近南桥路）', 'name': '环球风暴酒吧', 'lat': 31.199698, 'lng': 121.70415}, {'address': '城中路2号1-2层', 'name': 's3酒吧', 'lat': 31.379493, 'lng': 121.258076}, {'address': '虹口区黄浦路199号上海外滩茂悦大酒店西楼32-33楼(近武昌路)', 'name': '非常时髦酒吧', 'lat': 31.250982, 'lng': 121.499881}, {'address': '外马路1288号综合楼1楼', 'name': '外滩1288', 'lat': 31.212993, 'lng': 121.510346}, {'address': '上海市静安区铜仁路331号-1(近南阳路)', 'name': 'judy’s', 'lat': 31.233695, 'lng': 121.455909}, {'address': '花木路1388号嘉里大酒店1楼（近芳甸路）', 'name': '嘉里大酒店-大堂酒廊', 'lat': 31.21944, 'lng': 121.570252}, {'address': '长宁区虹井路851号皇朝别墅B18(近动物园)', 'name': 'The Mansion嚎宅', 'lat': 31.19154, 'lng': 121.369589}, {'address': '丰庄路515号2楼', 'name': '尚上酒吧', 'lat': 31.255042, 'lng': 121.371012}, {'address': '奉贤南桥育秀西路1333号', 'name': '拉丝维加斯', 'lat': 30.910584, 'lng': 121.456255}, {'address': '上海黄浦区肇周路76号', 'name': '杰克的酒窝', 'lat': 31.222824, 'lng': 121.48902}, {'address': '上海黄浦区外马路667号(近老码头)', 'name': 'LOTUS Lounge', 'lat': 31.22262, 'lng': 121.514007}, {'address': '上海徐汇区衡山路840号(近天平路)', 'name': 'tavern酒吧', 'lat': 31.203312, 'lng': 121.446993}, {'address': '中山南路505号老码头13号楼7楼', 'name': '奢居会', 'lat': 31.224587, 'lng': 121.51244}, {'address': '陕西北路819号（近康定路）', 'name': 'UVA wine bar', 'lat': 31.241891, 'lng': 121.455165}, {'address': '上海徐汇区东安路15号1楼', 'name': '东安路十五号', 'lat': 31.204925, 'lng': 121.45732}, {'address': '上海浦东新区世纪大道88号金茂君悦大酒店87楼(近二号线陆家嘴站)', 'name': '九重天酒吧', 'lat': 31.240675, 'lng': 121.512418}, {'address': '上海市徐汇区岳阳路1-3临', 'name': 'The Camel Sports Bar', 'lat': 31.215244, 'lng': 121.458533}, {'address': '黄浦区广东路20号外滩5号7楼(近中山东一路)', 'name': 'THE GLAMOUR BAR', 'lat': 31.240104, 'lng': 121.497251}, {'address': '浦建路38号上海浦东喜来登由由酒店37层', 'name': '上海浦东喜来登由由酒店-行政酒廊', 'lat': 31.215057, 'lng': 121.524574}, {'address': '延平路348号(康定路)', 'name': 'Mokkos bar(延平路店)', 'lat': 31.238718, 'lng': 121.445136}, {'address': '新松江路1292弄36号3层', 'name': 'X酒吧', 'lat': 31.048667, 'lng': 121.217605}, {'address': '上海市徐汇区汾阳路44号', 'name': 'Barules', 'lat': 31.217807, 'lng': 121.460954}, {'address': '延安东路与福建南路交叉口东50米', 'name': 'The Wolfpack', 'lat': 31.23654, 'lng': 121.48991}, {'address': '上海市静安区武定路479号(近陕西北路)', 'name': '开巴(武定路店)', 'lat': 31.240257, 'lng': 121.457534}, {'address': '辛耕路117号(上海银行对面)', 'name': 'Dr Beer', 'lat': 31.198888, 'lng': 121.449362}, {'address': '武定西路1245号103室', 'name': 'Mokkos', 'lat': 31.231399, 'lng': 121.440061}, {'address': '上海市浦东新区拾步街9号富都世界富城路休闲街B1', 'name': '星期五餐厅·酒吧', 'lat': 31.241528, 'lng': 121.504455}, {'address': '永嘉路31号2楼', 'name': '酒池星座(永嘉路店)', 'lat': 31.216906, 'lng': 121.470177}, {'address': '惠南镇听潮南路118号', 'name': 'AX酒吧', 'lat': 31.040923, 'lng': 121.747208}, {'address': '上海徐汇区永嘉路570号永嘉庭5号楼1楼', 'name': '霞飞路酒吧', 'lat': 31.212043, 'lng': 121.457658}, {'address': '黄浦区淮海中路527号锦江国际购物中心内5-6楼(近雁荡路)', 'name': '上海魔都酒吧', 'lat': 31.226642, 'lng': 121.475538}, {'address': '打浦路658弄1号绿地海外滩广场1楼6-103', 'name': 'inferno', 'lat': 31.199555, 'lng': 121.480672}, {'address': '上海市金山区石化1村11号', 'name': '蓝堡酒吧', 'lat': 30.718241, 'lng': 121.344428}, {'address': '鹤望路578号3楼', 'name': '海若慢摇酒吧', 'lat': 31.250407, 'lng': 121.327502}, {'address': '淮海东路99号新尚数码广场4楼', 'name': 'V LIVE House', 'lat': 31.231416, 'lng': 121.487265}, {'address': '万荣路700号C6(灵石路红灯口全家超市旁-正门入口)', 'name': 'Listen Live House', 'lat': 31.288563, 'lng': 121.44902}, {'address': '新乐路218号3楼(靠近东湖路)', 'name': 'fumo', 'lat': 31.223272, 'lng': 121.458991}, {'address': '上海长宁区华山路1038弄183号(曹家堰路口)', 'name': '昨天·今天·明天', 'lat': 31.2184, 'lng': 121.44264}, {'address': '上海市浦东新区南泉北路528号新大陆广场(北楼)3层305室', 'name': '101国际酒吧', 'lat': 31.235038, 'lng': 121.525988}, {'address': '上海市浦东新区张扬路640号B1楼', 'name': 'Cest La Vie 酒吧(八佰伴店)', 'lat': 31.23405, 'lng': 121.527072}, {'address': '巨鹿路895号(近常熟路)', 'name': 'LA MODA·LOUNGE', 'lat': 31.224582, 'lng': 121.454617}, {'address': '七莘路2233号(七莘路与中谊路交叉口)', 'name': '艾比尔啤酒坊', 'lat': 31.147572, 'lng': 121.365072}, {'address': '上海市长宁区定西路739号', 'name': '开巴(定西路店)', 'lat': 31.213895, 'lng': 121.430304}, {'address': '桃江路3号', 'name': '艾比之路酒吧', 'lat': 31.215288, 'lng': 121.457487}, {'address': '上海黄浦区河南南路159号豫园万丽大酒店22楼(近福佑路)', 'name': 'JZ Lounge', 'lat': 31.233265, 'lng': 121.494549}, {'address': '上海市虹口区高阳路136', 'name': '老船长酒吧', 'lat': 31.256375, 'lng': 121.509489}, {'address': '海防路537号（近西康路）', 'name': 'LA CLUB', 'lat': 31.243388, 'lng': 121.449998}, {'address': '上海市徐汇区泰安路37号(近兴国路)', 'name': 'DAGA BREWPUB', 'lat': 31.212105, 'lng': 121.444134}, {'address': '茂名南路56号，56食尚谷内1楼', 'name': 'Sidebar软式飞镖主题鸡尾酒酒吧', 'lat': 31.227413, 'lng': 121.466592}, {'address': '长乐路1222号104(近乌鲁木齐路/华山路)', 'name': 'Anteroom', 'lat': 31.221622, 'lng': 121.448649}, {'address': '上海市长宁区法华镇路532-2临', 'name': 'RICE BAR', 'lat': 31.211241, 'lng': 121.430951}, {'address': '太仓路181弄上海新天地北里5号楼1层', 'name': '凯博西餐酒吧', 'lat': 31.227078, 'lng': 121.481735}, {'address': '浦东新区浦东大道930号(近源深路中信五牛城酒店公寓对面)', 'name': \"Ricky's西餐酒吧\", 'lat': 31.246779, 'lng': 121.53782}, {'address': '上海市杨浦区大学路307号3层301室', 'name': 'iParty轰趴馆', 'lat': 31.30862, 'lng': 121.514371}, {'address': '同济路311号3楼', 'name': '好梦酒吧', 'lat': 31.388642, 'lng': 121.495203}, {'address': '上海闵行区古方路76号南方休闲广场5楼(近南方商城)', 'name': '零听酒吧', 'lat': 31.139357, 'lng': 121.408202}, {'address': '静安区武定路1089号(近延平路)', 'name': 'CAS BAR', 'lat': 31.236072, 'lng': 121.448567}, {'address': '上海市徐汇区衡山路41号', 'name': '时尚之夜酒吧网聚(衡山路店)', 'lat': 31.213246, 'lng': 121.45501}, {'address': '上海市徐汇区新乐路与襄阳北路交叉口西50米', 'name': '酒池星座(新乐路店)', 'lat': 31.223987, 'lng': 121.461519}, {'address': '漕溪北路930号（近零陵路）', 'name': 'Lucky Bar(漕溪北路)', 'lat': 31.189225, 'lng': 121.442352}, {'address': '斜土路2905号1F花园内(零陵路)', 'name': 'Bar Aphrodite', 'lat': 31.19069, 'lng': 121.447491}, {'address': '昌里路113号二楼', 'name': '三利酒吧', 'lat': 31.181102, 'lng': 121.507153}, {'address': '凯旋路606号(近武夷路口)', 'name': 'Wave Lounge', 'lat': 31.21931, 'lng': 121.424677}, {'address': '七莘路3033临星钻城4层', 'name': '03 vip bar', 'lat': 31.162132, 'lng': 121.353993}, {'address': '上海市闵行区虹梅休闲街3338弄21C号', 'name': 'SHANGHAIBREWERY', 'lat': 31.196935, 'lng': 121.394728}, {'address': '中山东二路585号上海外滩英迪格酒店30层', 'name': '恰餐厅及酒吧', 'lat': 31.231758, 'lng': 121.506694}, {'address': '上海市长宁区黄金城道701号1层、717弄12号103室', 'name': '典尚红酒吧', 'lat': 31.200942, 'lng': 121.40693}, {'address': '上海静安区大沽路433号(近石门一路)', 'name': 'Park91Pub', 'lat': 31.231448, 'lng': 121.472303}, {'address': '上海徐汇区永嘉路705号(衡山路口)', 'name': '贝尼酒吧', 'lat': 31.209769, 'lng': 121.452369}, {'address': '云山路1419号(近杨高路)', 'name': '莱克酒吧', 'lat': 31.249537, 'lng': 121.583145}, {'address': '长宁区淮海西路280号(近番禺路)', 'name': 'KOALA BAR', 'lat': 31.206381, 'lng': 121.435549}, {'address': '上海市徐汇区复兴西路67号', 'name': 'Wood PZaradise bar木制天堂酒吧', 'lat': 31.216882, 'lng': 121.450723}, {'address': '浦东新区张杨路777号锦江汤臣洲际大酒店1楼(近崂山路)', 'name': '柒酒廊', 'lat': 31.235122, 'lng': 121.528408}, {'address': '广富林路658弄万达广场金街113号', 'name': 'smile民谣酒吧(万达广场松江店)', 'lat': 31.064529, 'lng': 121.248787}, {'address': '新乐路218号4楼', 'name': 'Lune Bar(新乐路店)', 'lat': 31.223277, 'lng': 121.459}, {'address': '淮海路8号（兰生大厦7楼）', 'name': '时尚之夜酒吧网聚(黄埔2号店)', 'lat': 31.231655, 'lng': 121.486273}, {'address': '永福路5号（近复兴西路）', 'name': 'The Shelter', 'lat': 31.218045, 'lng': 121.450453}, {'address': '杨浦区大学路33号二楼202室', 'name': '不空酒吧', 'lat': 31.310324, 'lng': 121.518076}, {'address': '上海市黄浦区泰康路248弄12号', 'name': 'Walkers', 'lat': 31.214117, 'lng': 121.475342}, {'address': '上海市静安区石门一路288号兴业太古汇香港兴业中心1座1层L161(靠近威海路)', 'name': 'Bar Constellation', 'lat': 31.233991, 'lng': 121.469662}, {'address': '进贤路169号', 'name': 'Closless', 'lat': 31.227635, 'lng': 121.465894}, {'address': '上海浦东新区文益街85号', 'name': '弘基广场998酒吧', 'lat': 31.061371, 'lng': 121.771517}, {'address': '永嘉路570号永嘉庭5号楼4楼541', 'name': 'The Roof', 'lat': 31.212417, 'lng': 121.457367}, {'address': '岳阳路46号（靠近东平路）(教育会堂酒店)', 'name': 'Lola', 'lat': 31.213723, 'lng': 121.458279}, {'address': '杨浦区国定路333号三号湾广场1层', 'name': 'NEO BAR', 'lat': 31.302371, 'lng': 121.515666}, {'address': '上海市虹口区哈尔滨路129号', 'name': 'Bit Bar', 'lat': 31.260866, 'lng': 121.495905}, {'address': '长宁区法华镇路455-4号(近番禺路)', 'name': 'sky line地平线', 'lat': 31.210768, 'lng': 121.432993}, {'address': '长宁区宋园路58号领尚国际会馆20楼', 'name': 'FLYDREAM女仆国际会馆', 'lat': 31.198026, 'lng': 121.42095}, {'address': '上海市黄浦区浦建路38号一楼大堂', 'name': '大堂酒吧(长乐路)', 'lat': 31.226964, 'lng': 121.469545}, {'address': '上海静安区襄阳北路17号(近巨鹿路)', 'name': 'Project Wine', 'lat': 31.226264, 'lng': 121.46122}, {'address': '上海市浦东新区张杨路1500弄40号鄂尔多斯艾力大厦底商', 'name': 'ROLLING WHEELS酒吧', 'lat': 31.239849, 'lng': 121.545658}, {'address': '上海长宁区长宁路1018号龙之梦万丽酒店25楼(近凯旋路)', 'name': 'Zpark Bar(长宁路店)', 'lat': 31.2251, 'lng': 121.423542}, {'address': '黄浦区泰康路248弄11号后门(近瑞金二路)', 'name': 'bell cafe&bar', 'lat': 31.214136, 'lng': 121.475282}, {'address': '上海黄浦区南京东路789号世茂皇家艾美酒店44楼(近西藏中路)', 'name': '皇家艾美酒店-行政酒廊', 'lat': 31.240249, 'lng': 121.482798}, {'address': '上海市浦东新区沪南路967号51生活时区4/5层', 'name': 'Bm102酒吧', 'lat': 31.18901, 'lng': 121.561909}, {'address': '黄浦区进贤路181号', 'name': 'DE REFTER比利时餐厅啤酒吧', 'lat': 31.227532, 'lng': 121.465537}, {'address': '上海市静安区大沽路488号', 'name': '飘逸酒吧', 'lat': 31.231635, 'lng': 121.470872}, {'address': '上海市浦东新区杨高北路佳林路84号', 'name': 'Ladyrose玫瑰夫人酒吧(佳林路店)', 'lat': 31.274757, 'lng': 121.613596}, {'address': '延安西路2073号M101-M102室', 'name': '向日葵日式酒吧', 'lat': 31.209471, 'lng': 121.414506}, {'address': '徐汇区复兴西路271号(近高邮路)', 'name': 'LABELLA WINE HOUSE', 'lat': 31.217096, 'lng': 121.445386}, {'address': '银亭路66号1楼', 'name': 'D.BAR', 'lat': 31.177044, 'lng': 121.382091}, {'address': '闵行区虹梅路3338弄2号虹梅休闲街（老外街）内(近延安西路)', 'name': 'BigBamboo(虹梅路店)', 'lat': 31.196894, 'lng': 121.394477}, {'address': '长宁区法华镇路135号-6(在幸福路上)', 'name': 'THE TIPSY FIDDLER', 'lat': 31.209857, 'lng': 121.437469}, {'address': '武定路1088号', 'name': 'Bottoms up', 'lat': 31.236176, 'lng': 121.448219}, {'address': '上海市黄浦区南昌路166弄8号', 'name': '后院', 'lat': 31.225162, 'lng': 121.473308}, {'address': '上海市徐汇区武康路376号武康庭102室（近泰安路）', 'name': '葡道', 'lat': 31.212878, 'lng': 121.445686}, {'address': '上海市浦东新区秀沿路1166弄19号(近盛高假日酒店)', 'name': 'Mesh红酒吧', 'lat': 31.140973, 'lng': 121.588102}, {'address': '延安中路1218号静安香格里拉大酒店1层', 'name': '静安香格里拉大酒店-大堂酒廊', 'lat': 31.229167, 'lng': 121.456845}, {'address': '虹口足球场二层平台22号看台旁（地铁3号线虹口足球场站2号出口对面）', 'name': '赢吧Bliss', 'lat': 31.277118, 'lng': 121.486988}, {'address': '虹井路288号燎申虹桥国际中心南6楼（近地铁10号线龙柏新村站）', 'name': '派娜演艺酒吧', 'lat': 31.182048, 'lng': 121.377886}, {'address': '北苏州路20号上海大厦1层', 'name': '上海大厦-大堂酒廊', 'lat': 31.24996, 'lng': 121.496465}, {'address': '中山东一路2号上海外滩华尔道夫酒店1层', 'name': '羿庭', 'lat': 31.2395, 'lng': 121.497653}, {'address': '赵重公路2778弄115号2楼', 'name': '夜色酒吧', 'lat': 31.200935, 'lng': 121.192157}, {'address': '上海市徐汇区永康路74号(近襄阳南路)', 'name': 'Tap House', 'lat': 31.217213, 'lng': 121.464424}, {'address': '上海市闵行区浦晓路68号晶采坊4楼', 'name': 'DENO298', 'lat': 31.105524, 'lng': 121.508183}, {'address': '浦东新区世纪大道100号上海环球金融中心上海柏悦酒店87楼(近东泰路)', 'name': '上海柏悦酒店-大堂酒吧', 'lat': 31.240026, 'lng': 121.513946}, {'address': '愚园东路18号1层', 'name': '蓝枪鱼西餐酒吧(静安店)', 'lat': 31.232488, 'lng': 121.455649}, {'address': '上海浦东新区新川路519(川沙路口)', 'name': '红苹果酒吧会所', 'lat': 31.198701, 'lng': 121.702826}, {'address': '上海市闵行区虹桥路2550号上海虹桥国际机场T2航站楼F3', 'name': '上海中航虹桥机场-泊悦酒店', 'lat': 31.198386, 'lng': 121.334239}, {'address': '黄浦区巨鹿路158号大同坊B1楼5165室(近成都南路)', 'name': 'Palace Club', 'lat': 31.229202, 'lng': 121.472856}, {'address': '环城东路883弄39号', 'name': 'Feeling酒吧', 'lat': 30.934768, 'lng': 121.471422}, {'address': '古楼公路1876弄4号', 'name': '醉爱酒吧', 'lat': 31.110123, 'lng': 121.240273}, {'address': '南京西路久光百货二楼珠宝区S207-208', 'name': 'OH Cafe欧巧西餐酒吧', 'lat': 31.230289, 'lng': 121.452645}, {'address': '永寿路88号新黄浦酒店公寓1楼(近金陵东路)', 'name': '永寿风情酒吧', 'lat': 31.234092, 'lng': 121.488374}, {'address': '航南公路5000号2层', 'name': '嘎嘎酒吧', 'lat': 30.938609, 'lng': 121.477335}, {'address': '上海市长宁区虹梅路3338弄7号', 'name': 'Fat Cow', 'lat': 31.196802, 'lng': 121.392444}, {'address': '西藏中路555号雅居乐万豪1楼（近凤阳路）', 'name': '长廊酒吧', 'lat': 31.242442, 'lng': 121.480211}, {'address': '徐汇区文定路219号B1楼', 'name': 'Pino Jazz Club', 'lat': 31.190842, 'lng': 121.438157}, {'address': '昌邑路547号', 'name': 'Spicy girl酒吧', 'lat': 31.247696, 'lng': 121.527489}, {'address': '法华镇路17号（淮海西路口）', 'name': '米罗酒吧', 'lat': 31.20866, 'lng': 121.44046}, {'address': '上海市黄浦区巨鹿路158号大同坊5148室(近成都南路)', 'name': '思酷巴潜水主题酒吧', 'lat': 31.22916, 'lng': 121.472509}, {'address': '新码头街106-108号老码头12号楼(中山南路)', 'name': '斑马酒吧(1店)', 'lat': 31.224462, 'lng': 121.512375}, {'address': '东湖路7号东湖宾馆2楼', 'name': 'Craft', 'lat': 31.222243, 'lng': 121.460793}, {'address': '上海市虹口区东体育会路318号', 'name': 'Maia&#039;s西餐酒吧', 'lat': 31.281675, 'lng': 121.490549}, {'address': '南京东路20号和平饭店1层(近中山东一路)', 'name': '茉莉酒廊', 'lat': 31.244639, 'lng': 121.495686}, {'address': '西藏北路558号上海铭德大酒店2楼', 'name': '铭人吧(西藏北路店)', 'lat': 31.257061, 'lng': 121.476569}, {'address': '上海市徐汇区钦州南路559号(桂林路口', 'name': 'one piece bar', 'lat': 31.164815, 'lng': 121.427988}, {'address': '上海徐汇区永康路85号(近襄阳南路)', 'name': 'El Luchador', 'lat': 31.21694, 'lng': 121.464234}, {'address': '上海市黄浦区巨鹿路158号地下广场5189室(近延安西路)', 'name': '晴天酒吧', 'lat': 31.22916, 'lng': 121.47251}, {'address': '川沙老街南市街76号（近南市街）', 'name': '70年代酒吧', 'lat': 31.20112, 'lng': 121.711301}, {'address': '上海浦东新区东方路899号浦东假日酒店内(近向城路)', 'name': '爱尔兰酒吧(向城路)', 'lat': 31.229019, 'lng': 121.535173}, {'address': '虹泉路1101弄46号', 'name': '700Beer', 'lat': 31.174345, 'lng': 121.379717}, {'address': '复兴西路57号2楼', 'name': 'ARCADE', 'lat': 31.216836, 'lng': 121.451189}, {'address': '仙霞路691号2楼', 'name': 'RT Jazz Bar', 'lat': 31.212586, 'lng': 121.392836}, {'address': '上海市黄浦区南苏州路1307号苏州河畔国际青年旅舍内(近成都北路)', 'name': '苏州河畔SOHO BAR', 'lat': 31.246817, 'lng': 121.471562}, {'address': '五角场街道武东路38号(靠近政民路)', 'name': '饮酒思维(武东路店)', 'lat': 31.307505, 'lng': 121.506119}, {'address': '徐汇区嘉善路301号2楼', 'name': 'Burdigala Wine Bistrot', 'lat': 31.212926, 'lng': 121.466766}, {'address': '南京西路1818号1788广场6楼之3号', 'name': 'SALMOS', 'lat': 31.228411, 'lng': 121.450026}, {'address': '文城路378弄1号嘉和休闲广场2层235', 'name': '边缘狼酒屋', 'lat': 31.040005, 'lng': 121.224215}, {'address': '岳阳路28号（近东平路）', 'name': '海獭酒吧', 'lat': 31.214428, 'lng': 121.458202}, {'address': '长宁区虹许路809号(近延安西路)', 'name': 'Hilda制服酒吧', 'lat': 31.197604, 'lng': 121.39618}, {'address': '吴中路1155号亚世都酒店1楼（近万源路）', 'name': '亚世都勾引酒吧', 'lat': 31.182081, 'lng': 121.391933}, {'address': '上海市静安区天目西路218号太平洋百货F1', 'name': '寻找SEEK LiveClub', 'lat': 31.251801, 'lng': 121.463107}, {'address': '上海市闵行区沪星路289弄顺恒国际商业广场F1', 'name': '咏萄', 'lat': 31.169466, 'lng': 121.344789}, {'address': '德福路1211号左岸香堤110室2楼(汉庭酒店旁边)', 'name': '遇见酒吧', 'lat': 31.353034, 'lng': 121.264232}, {'address': '基隆路28号上海外高桥喜来登酒店1层', 'name': '上海外高桥喜来登酒店大堂酒廊', 'lat': 31.356762, 'lng': 121.594729}, {'address': '虹口区东体育会支路17号(近虹口足球场)', 'name': '冠军酒吧', 'lat': 31.278943, 'lng': 121.486762}, {'address': '黄浦路199号上海外滩茂悦大酒店东楼3楼（黄浦路南浔路）', 'name': '茂悦大酒店-嘉宾轩', 'lat': 31.250982, 'lng': 121.499881}, {'address': '一二八纪念路819号-1', 'name': '赞啤精酿鲜啤(宝山万达店)', 'lat': 31.332111, 'lng': 121.455795}, {'address': '上海市杨浦区周家嘴路3130号(近黄兴路)', 'name': 'HAPPINESS+PLUS休闲吧', 'lat': 31.281794, 'lng': 121.539297}, {'address': '朱家角镇漕兴路西井街118弄1号(上海凹吧南侧)', 'name': '这儿酒吧', 'lat': 31.119799, 'lng': 121.060276}, {'address': '淮海路1329号云海大厦3楼', 'name': 'Linx(淮海路店)', 'lat': 31.218203, 'lng': 121.45594}, {'address': '嵩山路88号上海安达仕酒店1层', 'name': '安达仕酒店-炫吧', 'lat': 31.228032, 'lng': 121.482281}, {'address': '上海浦东新区金科路1800号东郊宾馆内近龙东大道', 'name': '妃思酒吧', 'lat': 31.232096, 'lng': 121.602966}, {'address': '福建中路180号（近福州路）', 'name': 'The MAX Pub(福建中路店)', 'lat': 31.239725, 'lng': 121.488332}, {'address': '天平路34号', 'name': '星座Constellation Wine', 'lat': 31.20976, 'lng': 121.444169}, {'address': '沪星路289弄21号(近七宝巴黎春天)', 'name': 'Rainbow', 'lat': 31.168765, 'lng': 121.344608}, {'address': '罗芬路689弄80号一楼(近国际会议中心香巴拉龙虾向前20米)', 'name': 'scorpio天蝎座酒吧', 'lat': 31.406432, 'lng': 121.364204}, {'address': '上海市奉贤区韩村路600号(近环城东路)', 'name': '600 club', 'lat': 30.945797, 'lng': 121.464509}, {'address': '博华路989号绿川假日广场3楼', 'name': '金铭舞厅', 'lat': 31.178063, 'lng': 121.556548}, {'address': '静安区武定路1075号（近胶州路）', 'name': 'Enoterra红酒吧(武定路店)', 'lat': 31.236112, 'lng': 121.448934}, {'address': '太仓路181弄上海新天地北里F1层', 'name': 'KABB(上海新天地北里)', 'lat': 31.22702, 'lng': 121.481482}, {'address': '延安西路1116号上海龙之梦大酒店1楼', 'name': '丽晶大堂酒廊', 'lat': 31.217594, 'lng': 121.436927}, {'address': '上海市徐汇区永康路102号', 'name': '酒吧一条街', 'lat': 31.216944, 'lng': 121.463524}, {'address': '愚园支路18号(近乌鲁木齐北路)', 'name': 'crocus bar&restaurant阔客仕西餐厅酒吧', 'lat': 31.229187, 'lng': 121.44887}, {'address': '创智天地3号楼江湾体育场内1号看台环廊121', 'name': 'eleven酒吧', 'lat': 31.311991, 'lng': 121.520955}, {'address': '文汇路818号二楼', 'name': 'MRMONEY(大学店)', 'lat': 31.055949, 'lng': 121.209251}, {'address': '上海市青浦区沪青平公路2000号虹桥西郊假日酒店竞衡大厦1楼', 'name': '十字路酒吧', 'lat': 31.171381, 'lng': 121.276762}, {'address': '上海市浦东新区枣庄路963号枣庄路休闲街1层', 'name': 'Jam76 SPORTS BAR', 'lat': 31.252563, 'lng': 121.592828}, {'address': '上海徐汇区五原路88号(长熟路、乌鲁木齐路之间)', 'name': 'Lucky2 Bar', 'lat': 31.219506, 'lng': 121.45389}, {'address': '上海市普陀区胶州路941号长久大厦3楼（长寿路口）', 'name': '夜魅酒吧(胶州路)', 'lat': 31.243957, 'lng': 121.442471}, {'address': '上海徐汇区复兴中路1377号近宝庆路', 'name': '李香园', 'lat': 31.216837, 'lng': 121.456626}, {'address': '包头路378号3楼', 'name': '繁华舞厅', 'lat': 31.32163, 'lng': 121.545313}, {'address': '闵行区虹井路288号燎申虹桥国际中心6楼(近青杉路)', 'name': 'PARTENR合伙人俱乐部', 'lat': 31.182361, 'lng': 121.378543}, {'address': '新闸路1788号3层', 'name': 'I love shanghai(新闸路店)', 'lat': 31.234569, 'lng': 121.45009}, {'address': '上海市闵行区新镇路288号', 'name': 'CBC越野精酿啤酒吧', 'lat': 31.148863, 'lng': 121.377702}, {'address': '荣乐西路199号松江时代广场', 'name': 'MT酒吧', 'lat': 31.021113, 'lng': 121.214849}, {'address': '上海虹口区北苏州路20号上海大厦1楼(近吴淞路)', 'name': 'British Bar(北苏州路店)', 'lat': 31.250039, 'lng': 121.496465}, {'address': '延安东路7号7楼', 'name': 'SHEN', 'lat': 31.238204, 'lng': 121.497953}, {'address': '虹泉路1078号东2楼', 'name': '江南风格酒吧', 'lat': 31.174326, 'lng': 121.379498}, {'address': '雪野路1188号上海世博洲际酒店1层', 'name': 'Vista Bar', 'lat': 31.204737, 'lng': 121.5115}, {'address': '上海市中山南路1029号幸福码头3号楼（近多稼路）', 'name': 'Haven Shanghai', 'lat': 31.217021, 'lng': 121.511769}, {'address': '虹梅路3338弄老外街9-1号(延安西路)', 'name': '极光餐厅红酒吧', 'lat': 31.196846, 'lng': 121.392974}, {'address': '溧阳路649号(1933老场坊西侧200米)', 'name': '旮旯酒吧', 'lat': 31.260174, 'lng': 121.496806}, {'address': '华江路万达广场金街13-15号(万达金街)', 'name': 'BK BAR酒吧', 'lat': 31.245953, 'lng': 121.331698}, {'address': '上海嘉定区金园四路258号(近金园一路)', 'name': '梧桐汇酒吧', 'lat': 31.266031, 'lng': 121.321259}, {'address': '黄浦区马当路99号新天地朗廷酒店5楼(近兴安路)', 'name': 'XTD Elevated', 'lat': 31.227647, 'lng': 121.480607}, {'address': '中山中路83号上海松江假日酒店5层', 'name': '99会馆酒吧', 'lat': 31.012188, 'lng': 121.241657}, {'address': '黄浦区河南中路88号威斯汀大饭店5楼(近广东路)', 'name': '威斯汀行政酒廊', 'lat': 31.238145, 'lng': 121.493411}, {'address': '浦东新区长柳路100号淳大万丽酒店1楼(近迎春路)', 'name': '淳大万丽酒店大堂酒吧', 'lat': 31.230138, 'lng': 121.559055}, {'address': '新华路406号-1室', 'name': 'Cloud9', 'lat': 31.210168, 'lng': 121.431236}, {'address': '上海市虹口区四川北路2211号天鹅宾馆3楼(鲁迅公园正门对面)', 'name': '天鹅酒吧', 'lat': 31.273875, 'lng': 121.48848}, {'address': '衡山路12号豪华精选酒店1层', 'name': '灵动吧', 'lat': 31.211555, 'lng': 121.452657}, {'address': '浦东南路2111号福朋喜来登由由酒店4层', 'name': 'BB运动酒吧', 'lat': 31.21538, 'lng': 121.523449}, {'address': '静安区江宁路428号静安体育中心2楼(近南京西路)', 'name': 'cd酒吧', 'lat': 31.241397, 'lng': 121.459466}, {'address': '川沙新镇海上凤凰主题酒店(浦东机场川沙1店)海上凤凰宾馆隔壁城西路283号', 'name': '好久不见酒吧', 'lat': 31.201058, 'lng': 121.697623}, {'address': '古楼公路416号（靠近横港路，临近金港花园、润江花苑）', 'name': '醉邦酒仓主题酒吧', 'lat': 31.111557, 'lng': 121.270755}, {'address': '金沙江路2890弄21号丰庄路口金沙丽晶苑步行街21号', 'name': 'LUNA BAR', 'lat': 31.247697, 'lng': 121.366321}, {'address': '曹家渡街道康定路978号', 'name': 'PERRYS酒吧', 'lat': 31.237551, 'lng': 121.444797}, {'address': '周浦镇康沈路1611弄59号小上海文化旅游城4楼', 'name': '芭萨', 'lat': 31.122904, 'lng': 121.585315}, {'address': '上海市黄浦区柳林路65号柳林大厦6楼', 'name': '上海酒吧(淮海一号ONE PUB)', 'lat': 31.231598, 'lng': 121.486306}, {'address': '霍山路55号(近东大名路远洋宾馆旁边)', 'name': 'SAGA Bar', 'lat': 31.258765, 'lng': 121.516498}, {'address': '襄阳北路1号2楼', 'name': 'The Room', 'lat': 31.227412, 'lng': 121.460648}, {'address': '上海徐汇区淮海中路1797号(近宛平路)', 'name': 'Ci5', 'lat': 31.211394, 'lng': 121.446391}, {'address': '浦东南路111号文华东方酒店1层', 'name': '汇吧', 'lat': 31.249266, 'lng': 121.514237}, {'address': '漕宝路509号上海华美达兴园酒店1层', 'name': '上海新园华美达广场酒店-大堂吧', 'lat': 31.169703, 'lng': 121.412163}]\n",
      "\n",
      "数据转换完成！总共转换240个数据\n"
     ]
    }
   ],
   "source": [
    "# 答案代码\n",
    "\n",
    "path = 'C:\\\\Users\\\\Hjx\\\\Desktop\\\\jiuba.txt'  # 创建路径变量\n",
    "f = open(path,'r')  # 读取txt文件\n",
    "m = []  # 新建一个空列表，用于存储数据\n",
    "n = 0\n",
    "\n",
    "for line in f.readlines():\n",
    "    n += 1\n",
    "    st1 = line.split(':')\n",
    "    name = st1[0]   # 先以:拆分，筛选出name文本\n",
    "    information = st1[1]  # 第二部分包括lng，lat，address\n",
    "    st2 = information.split(',')\n",
    "    lng = float(st2[0])  # 筛选出lng\n",
    "    lat = float(st2[1])  # 筛选出lat\n",
    "    ad = st2[2].strip()  # 筛选出address，去除末尾空格\n",
    "    data = [['name',name],['lng',lng],['lat',lat],['address',ad]]  # 做成嵌套列表\n",
    "    m.append(dict(data))  # 生成字典，并追加如列表m\n",
    "    #print('成功转换%i个数据'%n)\n",
    "\n",
    "print(m)\n",
    "print('\\n数据转换完成！总共转换%i个数据'%n)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 文件写入 - write\n",
    "\n",
    "path =  'C:\\\\Users\\\\Hjx\\\\Desktop\\\\test_write.txt' \n",
    "f = open(path, 'w', encoding = 'utf8')\n",
    "f.write('hello world!')\n",
    "# 执行后直接创建“test_write.txt”文件，并写入“hello world！”\n",
    "# 12代表输入了12个字符，但是文件内真的有写入吗？打开看看"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "f.close()\n",
    "# 为什么没有？因为刚才是在内存里运行，我们需要再加上close才能写入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "path =  'C:\\\\Users\\\\Hjx\\\\Desktop\\\\' \n",
    "f = open(path + 'test_write2.txt', 'w', encoding = 'utf8')\n",
    "lst = ['a','b','c','d','e']\n",
    "f.writelines(lst)\n",
    "f.close()\n",
    "# f.writelines(list)：依次把列表元素写入，但这里有没有提行？\n",
    "# 如果想每一个元素提行怎么办？ → 每个元素后都有\"\\n\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "path =  'C:\\\\Users\\\\Hjx\\\\Desktop\\\\' \n",
    "f = open(path + 'test_write2.txt', 'w', encoding = 'utf8')\n",
    "lst = ['a','b','c','d','e']\n",
    "\n",
    "for i in range(len(lst)):\n",
    "    lst[i] = lst[i] + '\\n'\n",
    "    \n",
    "f.writelines(lst)\n",
    "f.close()\n",
    "# 通过遍历给每个元素最后加上\"\\n\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "小作业\n",
    "\n",
    "两个列表[1~10],[a~j]，写入一个txt，变成以下格式\n",
    "\n",
    "1,a\n",
    "\n",
    "2,b\n",
    "\n",
    "3,c\n",
    "\n",
    "..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "finished!\n"
     ]
    }
   ],
   "source": [
    "# 答案代码\n",
    "\n",
    "n = list(range(1,11))\n",
    "v = ['a','b','c','d','e','f','g','h','i','j']\n",
    "\n",
    "f = open( 'C:\\\\Users\\\\Hjx\\\\Desktop\\\\test_write3.txt', 'w', encoding = 'utf8')\n",
    "m = []\n",
    "\n",
    "for i in range(len(n)):\n",
    "    f.writelines([str(n[i]),',',v[i] + '\\n'])\n",
    "\n",
    "f.close()\n",
    "print('finished!')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "'''\n",
    "【课程8.4】  pickle模块的运用\n",
    "\n",
    "pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。\n",
    "\n",
    "python的pickle模块实现了基本的数据序列和反序列化\n",
    "\n",
    "通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去，永久存储\n",
    "\n",
    "通过pickle模块的反序列化操作，我们能够从文件中创建上一次程序保存的对象。\n",
    "\n",
    "pickle.dump() / pickle.load()\n",
    "\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'c': 'hello', 'b': ('string', 'abc'), 'a': [1, 2, 3, 4]}\n"
     ]
    }
   ],
   "source": [
    "# 存储：pickle.dump(obj, file, [,protocol])\n",
    "\n",
    "import pickle\n",
    "\n",
    "data = {'a':[1,2,3,4], 'b':('string','abc'), 'c':'hello'}\n",
    "print(data)\n",
    "# 创建一个字典变量data\n",
    "\n",
    "pic = open( 'C:\\\\Users\\\\Hjx\\\\Desktop\\\\data.pkl', 'wb')\n",
    "# 以二进制来存储：rb, wb, wrb, ab\n",
    "\n",
    "pickle.dump(data,pic)\n",
    "pic.close()\n",
    "# 将一个字典数据存成了pkl文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'c': 'hello', 'a': [1, 2, 3, 4], 'b': ('string', 'abc')}\n"
     ]
    }
   ],
   "source": [
    "# 读取：pickle.load(file)\n",
    "\n",
    "f = open( 'C:\\\\Users\\\\Hjx\\\\Desktop\\\\data.pkl', 'rb')\n",
    "\n",
    "st = pickle.load(f)\n",
    "print(st)\n",
    "# 直接读取pkl文件内的数据，该数据为一个字典"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
